#include "srkrt_ia.h"
#include <stdio.h>
#include <stdlib.h>

/* Ce petit comm est juste pour tester SVN */

void disp(Surakarta s) {
	int i,j ;
	for(i=0 ; i<6 ; i++) {
		for(j=0 ; j<6 ; j++) {
			printf("%2d",s.board[i][j]) ;
		}
		printf("\n") ;
	}
	printf("\n") ;
}

void reset(Surakarta* game) {
	int i,j ;
	for(i=0 ; i<6 ; i++) {
		for(j=0 ; j<6 ; j++) {
			game->board[i][j]=VOID ;
		}
	}
	game->player1Left=0 ;
	game->player2Left=0 ;
}

int main(int argc , char* argv[]) {
	List l;
	Surakarta s=srkrt_create(PLAYER_1) ;
	l = srkrt_list_create();
	
	/*test de l'ia ;*/
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[5][5]=-1 ;
	s.player1Left=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[0][0]=1 ;
	s.board[0][1]=1 ;
	s.player2Left=2 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[0][0]=1 ;
	s.board[0][1]=1 ;
	s.board[4][1]=-1 ;
	s.player2Left=2 ;
	s.player1Left=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[0][0]=1 ;
	s.board[0][1]=-1 ;
	s.player2Left=1 ;
	s.player1Left=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[1][4]=1 ;
	s.board[4][1]=-1 ;
	s.player2Left=1 ;
	s.player1Left=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[1][4]=1 ;
	s.board[4][1]=-1 ;
	s.board[1][1]=1 ;
	s.board[4][4]=1 ;
	s.player2Left=3 ;
	s.player1Left=1 ;
	s.toPlay=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[1][1]=1 ;
	s.board[3][3]=-1 ;
	s.player2Left=1 ;
	s.player1Left=1 ;
	s.toPlay=1 ;
	disp(s) ;
	printf("Heuristic : %d\n\n",srkrt_ia_heuristic(s)) ;
	
	reset(&s) ;
	s.board[1][1]=1 ;
	s.board[1][4]=-1 ;
	s.player2Left=1 ;
	s.player1Left=1 ;
	s.toPlay=-1 ;
	srkrt_allowed_moves(&s,&l) ;
	disp(s) ;
	srkrt_list_disp(&l) ;
	
	/*gccc srkrt_method.c srkrt_ia.c srkrt_dynamic_list.c srkrt_dynamic_stack.c test.c -o testex */
	
	printf("%c[2J", 0x1B);
	
	return EXIT_SUCCESS ;
}
